package com.leyou.utils;

import com.leyou.auth.utils.UserContext;
import com.leyou.dto.UserDetails;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @author jshstart
 * @creat 2020-12-25 12:53
 */
@Component
public class CollectionNameBuilder {
    @Value("${ly.mongo.collectionNamePrefix}")
    private String namePrefix;
    public String build(){
        //通过ThreadLocal方法从线程内部拿到当前登陆的用户对象
        UserDetails userDetails = UserContext.getUser();
        if (userDetails==null){
            return "";
        }
        //用id获取哈希值，之后有几个表就取模几，最后得到的哈希角标就代表着要被分到哪个表中，
        //用userId是因为，这样计算，统一用户添加的商品会被分到同一个表中
        return namePrefix+userDetails.getId().hashCode()%100;
    }
}
